#include "ABMCopa.h"

 ABMCopa::ABMCopa(std::string nArchivo, unsigned int tamanioBucket){
	this->nArchivo=nArchivo;
	this->tamanioBucket=tamanioBucket;
	hashCopa=new Hash(nArchivo,tamanioBucket);

}

 ABMCopa::~ABMCopa(){

}

bool ABMCopa::alta(unsigned int id, unsigned int idFormador, bool armado, bool aro){
	string valor=Util::uIntToString(idFormador) + ";" + Util::intToString(armado) + ";" + Util::intToString(aro);
	Key key = Key(id,valor);
	return hashCopa->insertar(key);
}

bool ABMCopa::baja(unsigned int id){
	Key key = Key(id,"");
	return hashCopa->eliminar(key);
}

bool ABMCopa:: modificacion(unsigned int id, unsigned int idFormador, bool armado, bool aro){
	string valor=Util::uIntToString(idFormador) + ";" + Util::intToString(armado) + ";" + Util::intToString(aro);
	Key key = Key(id,valor);
	return hashCopa->modificar(key);
}

/*si lo encuentra devuelve el valor de Key con los atributos separados por ; */

string ABMCopa::buscar(unsigned int id){
	Key key = Key(id,"");
	if (hashCopa->existe(key))
	return Util::intToString(id) + ";" + hashCopa->buscar(key);
	else return "";
}

vector<string>  ABMCopa::listar(unsigned int maxid){
	vector<string> vector;
	for (unsigned int i=0;i<=maxid;i++){
		Key key=Key(i,"");
		if (hashCopa->existe(key)){
			string valorVector=Util::uIntToString(i) + ";" + hashCopa->buscar(key);
			vector.push_back(valorVector);
		}
	}
	return vector;
}





